// pages/popup/popup.js
import { GetSearchDataApi, GetGoodsListApi,TipsListApi } from "../../request/api"
let timer=null
Page({

  /**
   * 页面的初始数据
   */
  data: {
    blockShow: 1,
    defaultKeyword: "",
    historyKeywordList: [],
    hotKeywordList: [],
    keyword: "",
    goodsList: [],//搜索商品列表,
    filterCategory: [],
    filterCategoryID: 0,
    page: 1,
    size: 20,
    order: "desc",
    categoryId: "0",
    sort: "id",
    tipsList:[]
  },
  onCancel() {
    wx.navigateBack()
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    let res = await GetSearchDataApi();

    let { defaultKeyword, historyKeywordList, hotKeywordList } = res.data

    this.setData({ defaultKeyword, historyKeywordList, hotKeywordList })



  },

  chanBlockShow(val) {
    this.setData({
      blockShow: val.detail.num,//子传父的数据（3）
      keyword: val.detail.keyword//子传父的数据（日式）
    })
    this.goodsSearchFn()
  },


  /*
  这是封装的函数，要调用才会执行啊,点击热门搜索的日式按钮，会子传父两个参数，一是更改blockShow的值，blockShow的值为3就会跳转到产品列表页面，二是把日式这个关键字传给父亲，先给日式添加点击事件，点击会触发gotoPruduct，通过data-kw="{{item.keyword}}"传到js中，通过triggerEvent来触发fn这个自定义事件，顺便带上了这两个参数，fn又等于chanBlockShow，所以相当于执行了chanBlockShow，这个函数更改了blockShow的值，所以页面会跳转，这个函数还执行了请求日式的相关数据，
  */
  async goodsSearchFn() {
    console.log("请求搜索列表数据", this.data.keyword);
    let res = await GetGoodsListApi({
      data: {
        keyword: this.data.keyword,
        categoryId: this.data.categoryId,
        page: this.data.page,
        size: this.data.size,
        order: this.data.order,
        sort: this.data.sort
      }
    });
    console.log("响应关键词的数据", res);
    let { goodsList } = res.data
    let { filterCategory } = res.data
    console.log("解构的数据是这样的", filterCategory)
    let arr = filterCategory.map(item => {
      return { text: item.name, value: item.id }
    })
    let currentId = filterCategory.filter(item => item.checked)[0].id
    this.setData({
      goodsList,
      filterCategory: arr,
      filterCategoryID: currentId
    })
    console.log(arr)
  },
  onSearch(e) {
    //搜索的时候执行
    this.setData({

      blockShow: 3,
      keyword: e.detail,
      categoryId:0
    })
    this.goodsSearchFn()

  },
  //实时搜索(防抖)
  
  onChange(e){
    this.setData({
      blockShow: 2
    })
    console.log("执行了onChange",e.detail)
    
  if(timer){
    clearTimeout(timer)
  }
    timer=setTimeout(async () => {
    let res=await TipsListApi({
      data:{
        keyword:e.detail
      }
     });
    //  console.log("xxxx",res.data)
     this.setData({
       tipsList:res.data
     })
     console.log("tipsList是",this.data.tipsList)
   }, 500);
  },

  categoryChange(e) {
    console.log(e)
    this.setData({

      keyword: this.data.keyword,
      categoryId: e.detail,
      sort:"id"
    })
    this.goodsSearchFn();

  },
  priceChange(val){
    this.setData({
      keyword: this.data.keyword,
      categoryId: 0,
      sort:"price",
      order:val.detail

    })
    this.goodsSearchFn();

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})